package main

type TreeNode struct {
	Val   int
	Left  *TreeNode
	Right *TreeNode
}

/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * @param pre int整型一维数组
 * @param vin int整型一维数组
 * @return TreeNode类
 */
func reConstructBinaryTree(pre []int, vin []int) *TreeNode {
	// write code here
	if len(pre) == 0 {
		return nil
	}
	pos := 0
	for ; pre[0] != vin[pos]; pos++ {
	}
	root := &TreeNode{
		Val:   pre[0],
		Left:  reConstructBinaryTree(pre[1:pos+1], vin[:pos]),
		Right: reConstructBinaryTree(pre[pos+1:], vin[pos+1:])}
	return root
}
